﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using TTBusiness;
using TTBusiness.DB_Linq;
using System.Data;
using System.Web;
namespace TTBusiness.ClassDB
{
    /// <summary>
    /// Create by ThiepND 23/3/2011
    /// </summary>
    public class clsBSAdmin
    {
        TTMarketing_DBDataContext objDB = new TTMarketing_DBDataContext();
        public List<tblAdmin> getAll()
        {
            try
            {
                var list = from a in objDB.tblAdmins
                           select a;
                return list.ToList<tblAdmin>();
            }
            catch (Exception)
            {

                throw;
            }
        }

        public void ChangePassword(int id, string password)
        {
            try
            {
                try
                {
                    var ac = objDB.tblAdmins.SingleOrDefault(a => a.ID == id);
                    if (ac != null)
                    {
                        ac.Password = clsBSMD5Password.ChangeMD5(password);
                        objDB.SubmitChanges();
                        String subject = "Thay đổi mật khẩu";
                        String body = "Bạn nhận được thư này bởi vì mật khẩu đăng nhập của bạn tại website : <a href='" +
                            HttpContext.Current.Request.Url.Host + "/Admin'>" + HttpContext.Current.Request.Url.Host +
                            "/Admin</a> đã được thay đổi <br/> Tên đăng nhập :" + ac.UserName + "<br/> Mật khẩu mới : " + password;
                        clsBSSendMail.sendMail(new string[] { ac.Email }, subject, body);
                    }
                }
                catch (Exception)
                {

                    throw;
                }
            }
            catch (Exception)
            {

                throw;
            }
        }

        public tblAdmin getByUserNamePassword(string username, string password)
        {
            try
            {
                var ac = objDB.tblAdmins.SingleOrDefault(a => a.UserName == username && a.Password ==
                    clsBSMD5Password.ChangeMD5(password));
                return ac;
            }
            catch (Exception)
            {
                throw;
            }
        }
        public tblAdmin getByUserName(string username)
        {
            try
            {
                var ac = objDB.tblAdmins.SingleOrDefault(a => a.UserName == username);

                return ac;
            }
            catch (Exception)
            {

                throw;
            }
        }
        public tblAdmin getById(int id)
        {
            try
            {
                var ac = objDB.tblAdmins.SingleOrDefault(a => a.ID == id);
                return ac;
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void insert(tblAdmin ac)
        {
            string password = clsBSMD5Password.RadomPassword();
            ac.Password = clsBSMD5Password.ChangeMD5(password);
            objDB.tblAdmins.InsertOnSubmit(ac);
            objDB.SubmitChanges();
            String subject = "Thông tin tài khoản";
            String body = "Bạn nhận được thư này bởi vì bạn đã tạo tài khoản tại website : <a href='" +
                HttpContext.Current.Request.Url.Host + "/Admin'>" + HttpContext.Current.Request.Url.Host +
                "/Admin</a><br/> Tên đăng nhập :" + ac.UserName + "<br/> Mật khẩu : " + password;
            clsBSSendMail.sendMail(new string[] { ac.Email }, subject, body);
        }
        public void resetPassword(int id)
        {
            try
            {
                var ac = objDB.tblAdmins.SingleOrDefault(a => a.ID == id);
                if (ac != null)
                {
                    string password = clsBSMD5Password.RadomPassword();
                    ac.Password = clsBSMD5Password.ChangeMD5(password);
                    objDB.SubmitChanges();
                    String subject = "Thay đổi mật khẩu";
                    String body = "Bạn nhận được thư này bởi vì mật khẩu đăng nhập của bạn tại website : <a href='" +
                        HttpContext.Current.Request.Url.Host + "/Admin'>" + HttpContext.Current.Request.Url.Host +
                        "/Admin</a> đã được thay đổi <br/> Tên đăng nhập :" + ac.UserName + "<br/> Mật khẩu mới : " + password;
                    clsBSSendMail.sendMail(new string[] { ac.Email }, subject, body);
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void resetPassword(string email)
        {
            try
            {
                var ac = objDB.tblAdmins.FirstOrDefault(a => a.Email == email);

                if (ac != null)
                {
                    string password = clsBSMD5Password.RadomPassword();
                    ac.Password = clsBSMD5Password.ChangeMD5(password);
                    objDB.SubmitChanges();
                    String subject = "Thay đổi mật khẩu";
                    String body = "Bạn nhận được thư này bởi vì mật khẩu đăng nhập của bạn tại website : <a href='" +
                        HttpContext.Current.Request.Url.Host + "/Admin'>" + HttpContext.Current.Request.Url.Host +
                        "/Admin</a> đã được thay đổi <br/> Tên đăng nhập :" + ac.UserName + "<br/> Mật khẩu mới : " + password;
                    clsBSSendMail.sendMail(new string[] { ac.Email }, subject, body);
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void resetPassword(int id, string password)
        {
            try
            {
                var ac = objDB.tblAdmins.SingleOrDefault(a => a.ID == id);
                if (ac != null)
                {
                    ac.Password = clsBSMD5Password.ChangeMD5(password);
                    objDB.SubmitChanges();
                    String subject = "Thay đổi mật khẩu";
                    String body = "Bạn nhận được thư này bởi vì mật khẩu đăng nhập của bạn tại website : <a href='" +
                        HttpContext.Current.Request.Url.Host + "/Admin'>" + HttpContext.Current.Request.Url.Host +
                        "/Admin</a> đã được thay đổi <br/> Tên đăng nhập :" + ac.UserName + "<br/> Mật khẩu mới : " + password;
                    clsBSSendMail.sendMail(new string[] { ac.Email }, subject, body);
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void update(tblAdmin acc)
        {
            try
            {
                var ac = objDB.tblAdmins.SingleOrDefault(a => a.ID == acc.ID);
                if (ac != null)
                {
                    ac.Email = acc.Email;
                    ac.FullName = acc.FullName;
                    ac.UserName = acc.UserName;
                    ac.OrderRequest = acc.OrderRequest;
                    objDB.SubmitChanges();
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void delete(int id)
        {
            try
            {
                var ac = (from a in objDB.tblAdmins
                          where a.ID == id
                          select a).SingleOrDefault();
                objDB.tblAdmins.DeleteOnSubmit(ac);
                objDB.SubmitChanges();
            }
            catch (Exception)
            {

                throw;
            }
        }
    }
}
